package top.as.sean.common.constant;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 常量
 *
 * @author: ArchieSean
 * @create: 2022/11/4
 */

public class Constant {
    /**
     * 数据字典状态枚举
     */
    @Getter
    @AllArgsConstructor
    public enum DictEnum {
        /**
         * 字典可用
         */
        ENABLE("0", "可用"),
        /**
         * 字典禁用
         */
        DISABLE("1", "禁用");
        /**
         * 状态
         */
        private final String code;
        /**
         * 描述
         */
        private final String desc;
    }

    /**
     * 公用可用状态
     */
    @Getter
    @AllArgsConstructor
    public enum CommonStatus {
        /**
         * 可用
         */
        ENABLE("0", "正常"),
        /**
         * 禁用
         */
        DISABLE("1", "禁用");
        /**
         * 可用状态编码
         */
        private final String code;
        /**
         * 描述
         */
        private final String desc;
    }

    /**
     * 公用逻辑删除标记
     */
    @Getter
    @AllArgsConstructor
    public enum CommonDelete {
        /**
         * 正常
         */
        ENABLE("0", "正常"),
        /**
         * 删除
         */
        DELETE("1", "删除");
        /**
         * 逻辑删除编码
         */
        private final String code;
        /**
         * 逻辑删除描述
         */
        private final String desc;
    }

    /**
     * 菜单分类： 菜单、按钮、方法
     */
    @Getter
    @AllArgsConstructor
    public enum MenuType {
        /**
         * 菜单
         */
        MENU("0", "菜单"),
        /**
         * 方法
         */
        FN("1", "方法"),
        /**
         * 按钮
         */
        BUTTON("2", "按钮");
        /**
         * 编码
         */
        private final String code;
        /**
         * 描述
         */
        private final String desc;
    }

    /**
     * 菜单隐藏
     */
    @Getter
    @AllArgsConstructor
    public enum MenuVisible {
        /**
         * 菜单显示
         */
        SHOW("0", "显示"),
        /**
         * 菜单隐藏
         */
        VISIBLE("1", "隐藏");
        /**
         * 编码
         */
        private final String code;
        /**
         * 描述
         */
        private final String desc;
    }
}
